/**
 * 
 */
package com.shy.task.service;

import java.util.List;

import com.shy.base.service.BaseService;
import com.shy.task.entity.TaskEntity;

/**
 * <p>Title:TaskEntityService </p>
 * <p>Description: 任务信息 service层接口</p>
 * <p>Company:shy </p> 
 * @author H2013788
 * @date 2019年09月21日
 */
public interface TaskEntityService extends BaseService<TaskEntity>{
	
	/**
	 * 添加一个 quartz job
	 *
	 * @param jobCfg
	 */
	void addJob(TaskEntity jobCfg);

	/**
	 * 修改 quartz job
	 *
	 * @param jobCfg
	 */
	void updateJob(TaskEntity jobCfg);

	/**
	 * 删除 quartz job
	 *
	 * @param id
	 */
	void deleteJob(Integer id);

	/**
	 * 查询系统中所有状态为 启用 的 job
	 */
	List<TaskEntity> queryAllEnableJobCfgs();

	/**
	 * 动态更新job执行的class
	 *
	 * @param bytes
	 * @param id
	 */
	void updateQuartzExecuteClass(byte[] bytes, Integer id);
	
	
	/**
	 * 暂停一个 id
	 *
	 * @param job
	 */
	void pauseQuartzJob(Integer id);

	/**
	 * 恢复一个 id
	 *
	 * @param job
	 */
	void resumeQuartzJob(Integer id);

	/**
	 * 立即执行一次
	 *
	 * @param id
	 */
	void immediateExecuteJob(Integer id);
	
}
